package com.sgb.kjwl.model.entity.self;

import androidx.annotation.IntDef;

import com.google.gson.annotations.SerializedName;
import com.sgb.kjwl.model.entity.transport.CargoPublishEntity;

import java.io.Serializable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

public class CarriageInfoPublishEntity implements Serializable {
    /***
     "id":"",
     "carTypeNo":"1",
     "carLenNo":"1",
     "provinceNo":"610000",
     "cityNo":"610100",
     "districtNo":"610102",
     "provinceName":"当前位置-省",
     "cityName":"当前位置-市",
     "districtName":"当前位置-区",
     "destProvinceNo":"510000",
     "destCityNo":"510100",
     "destDistrictNo":"510104",
     "destProvinceName":"目的地-省",
     "destCityName":"目的地-市",
     "destDistrictName":"目的地-区",
     "inTime":"2020-4-1",
     "freight":"9",
     "note":"备注",
     "contact":"联系人",
     "contactNum":"18195955858",
     "pushProvinceNo":"610000",
     "pushCityNo":"610100",
     "pushDistrictNo":"610101",
     "pushProvinceName":"信息推送-省",
     "pushCityName":"信息推送-市",
     "pushDistrictName":"信息推送-区",
     "radius":"12",
     */
    @SerializedName(value = "id")
    private String id = "";
    private String no;
    @SerializedName("carTypeNo")
    private String carTypeNo;
    @SerializedName("carLenNo")
    private String carLenNo;
    @SerializedName("provinceNo")
    private String provinceNo;
    @SerializedName("cityNo")
    private String cityNo;
    @SerializedName("districtNo")
    private String districtNo;
    @SerializedName("provinceName")
    private String provinceName;
    @SerializedName("cityName")
    private String cityName;
    @SerializedName("districtName")
    private String districtName;
    @SerializedName("destProvinceNo")
    private String destProvinceNo;
    @SerializedName("destCityNo")
    private String destCityNo;
    @SerializedName("destDistrictNo")
    private String destDistrictNo;
    @SerializedName("destProvinceName")
    private String destProvinceName;
    @SerializedName("destCityName")
    private String destCityName;
    @SerializedName("destDistrictName")
    private String destDistrictName;
    @SerializedName(value = "shipmentTime", alternate = "shipmentStartTime")
    private String inTime;
    @SerializedName("freight")
    private String freight;
    @SerializedName("note")
    private String note;
    @SerializedName("contrcts")
    private String contacts;
    @SerializedName("contrctsNumber")
    private String contactsNum;
    @SerializedName("pushProvinceNo")
    private String pushProvinceNo;
    @SerializedName("pushCityNo")
    private String pushCityNo;
    @SerializedName("pushDistrictNo")
    private String pushDistrictNo;
    @SerializedName("pushProvinceName")
    private String pushProvinceName;
    @SerializedName("pushCityName")
    private String pushCityName;
    @SerializedName("pushDistrictName")
    private String pushDistrictName;
    @SerializedName("radius")
    private String radius;
    @SerializedName("carNumber")
    private String carNumber;
    @SerializedName("rate")
    private String rate;
    @SerializedName("isDump")
    private String isDump;
    @SerializedName("payType")
    private String payType;
    @SerializedName("heightHurdle")
    private String heightHurdle;
    @SerializedName("weight")
    private String weight;
    private String detailAddress;
    private String shipmentEndTime;
    private String invoice;
    private String invoiceNo;
    private int isTrue; //是否推送信息 1已推送 2未推送
    private Integer bargain;//是否议价
    public int discuss;//是否商议 0 不商议，1商议
    private double kilometre;//公里数
    private long updateTime;//更新时间

    public double getKilometre() {
        return kilometre;
    }

    public void setKilometre(double kilometre) {
        this.kilometre = kilometre;
    }

    public long getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(long updateTime) {
        this.updateTime = updateTime;
    }

    public int getDiscuss() {
        return discuss;
    }

    public void setDiscuss(int discuss) {
        this.discuss = discuss;
    }

    //2.0.4新增
    private boolean isInvoiceChanges;    //税率发票要求是否变更

    /**
     * 车型
     */
    private String carTypeName;
    /**
     * 车长
     */
    private String carLenName;
    private String messageStatus;
    private int freightUnit;
    private Integer carrierType;

    public Integer getCarrierType() {
        return carrierType;
    }

    public void setCarrierType(Integer carrierType) {
        this.carrierType = carrierType;
    }

    public int getFreightUnit() {
        return freightUnit;
    }

    public String getFreightUnitWords() {
        switch (freightUnit) {
            case 1:
                return "/趟";
            case 2:
                return "/吨";
            case 3:
                return "/方";
        }
        return "/吨";
    }

    public void setFreightUnit(int freightUnit) {
        this.freightUnit = freightUnit;
    }

    public String getMessageStatus() {
        return messageStatus;
    }

    public void setMessageStatus(String messageStatus) {
        this.messageStatus = messageStatus;
    }

    public String getCarTypeName() {
        return carTypeName;
    }

    public void setCarTypeName(String carTypeName) {
        this.carTypeName = carTypeName;
    }

    public String getCarLenName() {
        return carLenName;
    }

    public void setCarLenName(String carLenName) {
        this.carLenName = carLenName;
    }

    public Integer getBargain() {
        return bargain;
    }

    public void setBargain(Integer bargain) {
        this.bargain = bargain;
    }

    public int getIsTrue() {
        return isTrue;
    }

    public void setIsTrue(int isTrue) {
        this.isTrue = isTrue;
    }

    public String getInvoice() {
        return invoice;
    }

    public void setInvoice(String invoice) {
        this.invoice = invoice;
    }

    public void setWeight(String weight) {
        this.weight = weight;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public String getShipmentEndTime() {
        return shipmentEndTime;
    }

    public void setShipmentEndTime(String shipmentEndTime) {
        this.shipmentEndTime = shipmentEndTime;
    }

    public String getDetailAddress() {
        return detailAddress;
    }

    public void setDetailAddress(String detailAddress) {
        this.detailAddress = detailAddress;
    }

    public boolean isInvoiceChanges() {
        return isInvoiceChanges;
    }

    public void setInvoiceChanges(boolean invoiceChanges) {
        isInvoiceChanges = invoiceChanges;
    }

    /**
     * v1.4 发货地坐标
     */
    private double lng;
    /**
     * v1.4 发货地坐标
     */
    private double lat;
    /**
     * v1.4 目的地详细地址
     */
    private String destDetailAddress;
    /**
     * v1.4 目的地坐标
     */
    private double destLng;
    /**
     * v1.4 目的地坐标
     */
    private double destLat;
    /**
     * v1.5 承运发布模式 0 普通模式  1 竞价模式
     */
    private int pattern;
    /**
     * v1.5 状态 0 待下单/竞价中  1 已成交   2 已结束
     */
    private int state;
    /**
     * v1.5 车辆编号
     */
    @SerializedName(value = "driverNo", alternate = {"carNo"})
    private String driverNo;
    private String EndTime;

    public double getLng() {
        return lng;
    }

    public void setLng(double lng) {
        this.lng = lng;
    }

    public double getLat() {
        return lat;
    }

    public void setLat(double lat) {
        this.lat = lat;
    }

    public String getDestDetailAddress() {
        return destDetailAddress;
    }

    public void setDestDetailAddress(String destDetailAddress) {
        this.destDetailAddress = destDetailAddress;
    }

    public double getDestLng() {
        return destLng;
    }

    public void setDestLng(double destLng) {
        this.destLng = destLng;
    }

    public double getDestLat() {
        return destLat;
    }

    public void setDestLat(double destLat) {
        this.destLat = destLat;
    }

    public int getPattern() {
        return pattern;
    }

    public void setPattern(int pattern) {
        this.pattern = pattern;
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public String getDriverNo() {
        return driverNo;
    }

    public void setDriverNo(String driverNo) {
        this.driverNo = driverNo;
    }

    public String getEndTime() {
        return EndTime;
    }

    public void setEndTime(String endTime) {
        EndTime = endTime;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCarTypeNo() {
        return carTypeNo;
    }

    public void setCarTypeNo(String carTypeNo) {
        this.carTypeNo = carTypeNo;
    }

    public String getCarLenNo() {
        return carLenNo;
    }

    public void setCarLenNo(String carLenNo) {
        this.carLenNo = carLenNo;
    }

    public String getProvinceNo() {
        return provinceNo;
    }

    public void setProvinceNo(String provinceNo) {
        this.provinceNo = provinceNo;
    }

    public String getCityNo() {
        return cityNo;
    }

    public void setCityNo(String cityNo) {
        this.cityNo = cityNo;
    }

    public String getDistrictNo() {
        return districtNo;
    }

    public void setDistrictNo(String districtNo) {
        this.districtNo = districtNo;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getDistrictName() {
        return districtName;
    }

    public void setDistrictName(String districtName) {
        this.districtName = districtName;
    }

    public String getDestProvinceNo() {
        return destProvinceNo;
    }

    public void setDestProvinceNo(String destProvinceNo) {
        this.destProvinceNo = destProvinceNo;
    }

    public String getDestCityNo() {
        return destCityNo;
    }

    public void setDestCityNo(String destCityNo) {
        this.destCityNo = destCityNo;
    }

    public String getDestDistrictNo() {
        return destDistrictNo;
    }

    public void setDestDistrictNo(String destDistrictNo) {
        this.destDistrictNo = destDistrictNo;
    }

    public String getDestProvinceName() {
        return destProvinceName;
    }

    public void setDestProvinceName(String destProvinceName) {
        this.destProvinceName = destProvinceName;
    }

    public String getDestCityName() {
        return destCityName;
    }

    public void setDestCityName(String destCityName) {
        this.destCityName = destCityName;
    }

    public String getDestDistrictName() {
        return destDistrictName;
    }

    public void setDestDistrictName(String destDistrictName) {
        this.destDistrictName = destDistrictName;
    }

    public String getInTime() {
        return inTime;
    }

    public void setInTime(String inTime) {
        this.inTime = inTime;
    }

    public String getFreight() {
        return freight;
    }

    public void setFreight(String freight) {
        this.freight = freight;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getContactsNum() {
        return contactsNum;
    }

    public void setContactsNum(String contactsNum) {
        this.contactsNum = contactsNum;
    }

    public String getPushProvinceNo() {
        return pushProvinceNo;
    }

    public void setPushProvinceNo(String pushProvinceNo) {
        this.pushProvinceNo = pushProvinceNo;
    }

    public String getPushCityNo() {
        return pushCityNo;
    }

    public void setPushCityNo(String pushCityNo) {
        this.pushCityNo = pushCityNo;
    }

    public String getPushDistrictNo() {
        return pushDistrictNo;
    }

    public void setPushDistrictNo(String pushDistrictNo) {
        this.pushDistrictNo = pushDistrictNo;
    }

    public String getPushProvinceName() {
        return pushProvinceName;
    }

    public void setPushProvinceName(String pushProvinceName) {
        this.pushProvinceName = pushProvinceName;
    }

    public String getPushCityName() {
        return pushCityName;
    }

    public void setPushCityName(String pushCityName) {
        this.pushCityName = pushCityName;
    }

    public String getPushDistrictName() {
        return pushDistrictName;
    }

    public void setPushDistrictName(String pushDistrictName) {
        this.pushDistrictName = pushDistrictName;
    }

    public String getRadius() {
        return radius;
    }

    public void setRadius(String radius) {
        this.radius = radius;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    public String getRate() {
        return rate;
    }

    public void setRate(String rate) {
        this.rate = rate;
    }

    public String getIsDump() {
        return isDump;
    }

    public void setIsDump(String isDump) {
        this.isDump = isDump;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public String getHeightHurdle() {
        return heightHurdle;
    }

    public void setHeightHurdle(String heightHurdle) {
        this.heightHurdle = heightHurdle;
    }

    public String getWeight() {
        return weight;
    }

    public void setWight(String wight) {
        this.weight = wight;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }


    /**
     * 运费类型
     */
    @IntDef({CargoPublishEntity.FreightMode.MODE_ONCE, CargoPublishEntity.FreightMode.MODE_WEIGHT, CargoPublishEntity.FreightMode.MODE_VOLUME})
    @Retention(RetentionPolicy.SOURCE)
    public @interface FreightMode {
        int MODE_ONCE = 1;//趟
        int MODE_WEIGHT = 2;//吨
        int MODE_VOLUME = 3;//方
    }
}
